#include "queue.h"

void queueInit(Queue *q){
	q->in=0;
	q->out=0;
	q->cnt=0;
	q->size=10;
}

extern Bool queuePut(Queue *q, char c){
	if(queueFull(q))
		return false;
	q->buf[q->in]=c;
	q->cnt++;
	q->in++;
	if(q->in==q->size)
		q->in=0;
	return true;
}

int queueGet(Queue *q){
	if(queueEmpty(q))
		return -1;
	int elem=q->buf[q->out];
	q->cnt--;
	q->out++;
	if(q->out==q->size)
		q->out=0;
	return elem;
}

Bool queueEmpty(Queue *q){
	return q->cnt==0;
}

Bool queueFull(Queue *q){
	return q->cnt==q->size;
}
